// 角色列表
import ROLE_ENUM from "@/access/ROLE_ENUM";

/**
 * 检查用户权限
 * @param loginUser 当前登录用户
 * @param needAccess 需要的权限
 * return true:有权限，false:无权限
 */
const checkAccess = (loginUser: any, needAccess = ROLE_ENUM.NOT_LOGIN) => {
  // 获取当前登录用户的角色（为空说明没有登录）
  const loginUserRole = loginUser?.userRole ?? ROLE_ENUM.NOT_LOGIN;

  // 如果需要的权限是无需登录的，直接放行
  if (needAccess === ROLE_ENUM.NOT_LOGIN) {
    return true;
  }

  // 如果需要的权限是普通用户所拥有的（需要登录）
  if (needAccess === ROLE_ENUM.USER) {
    // 没有登录
    if (loginUserRole === ROLE_ENUM.NOT_LOGIN) {
      return false;
    }
  }

  // 如果需要的权限是管理员所拥有的
  if (needAccess === ROLE_ENUM.ADMIN) {
    // 不为管理员
    if (loginUserRole !== ROLE_ENUM.ADMIN) {
      return false;
    }
  }

  return true;
};

export default checkAccess;
